Conventionally, with respect to the multiplication for obtaining XN for two digital numerical data X and N, as described in Haruhiko Okumura, "Latest Algorithm Dictionary in C language", p. 105 and 106, p. 162 and 163, and p. 304 published from Gijutsu Hyoronsha, Feb. 25, 1991, a method that a technique of obtaining a logarithm and an exponent by loop calculation by performing expansion into power series or expansion into continued fraction for the logarithmic function and exponential function is used, and the logarithm of X is calculated on a software basis, and the result is multiplied by N, and finally the exponent of the multiplication result is calculated is used.
As another method, a method that an address is directly generated from the aforementioned two digital numerical data X and N and the power table (ROM, RAM) is referred to is used.
As mentioned above, in the conventional examples, a problem arises that in the former case, loop calculation is generated and speeding-up of the process is difficult and in the latter case, since the two data X and N are inputted to the table, the gradient of the input values to the table is the product of the gradation number of X and the gradation number of N, accordingly the table capacity is increased.
On the other hand, as a conventional graphics processing unit, for example, the processing unit described in Japanese Patent Application Laid-Open 8-161525 is known.
These conventional graphics processing units generally comprise a geometry unit for performing geometric calculation such as coordinate transformation or clipping process and a rendering unit for transforming graphics such as a straight line, a triangle, or others to pixels and performing the drawing process.
In such a graphics processing unit, when an image obtained by projecting various 3D graphics data is to be generated, firstly the geometry unit performs perspective transformation of a three-dimensional shape to two-dimensional coordinates, the clipping process, calculation of the brightness of the light source, and others and then the rendering unit expands data of a straight line, a triangle, or others which is graphics data obtained by projection transformation of the three-dimensional shape to two-dimensional coordinates by the geometry unit to pixels, performs operations of Z comparison or alpha blending, and stores an image in the frame memory.
In such a graphics processing unit, the geometry unit is generally realized as a processor chip and operations of the geometry unit are performed by handling each data as a floating-point number so as to prevent limitation of the numerical range and reduction in the operation accuracy.
On the other hand, the rendering unit is also generally realized as a processor chip but operations thereof are performed by handling each data as a fixed-point number. The reason is that it is difficult to perform operations to be performed by the rendering unit by a floating-point number from a viewpoint of circuit scale and operation speed.
The bit position of the decimal point of a fixed-point number handled in the rendering unit generally varies with the kind of data. The reason is that the accuracy required to generate a good quality image varies with the kind of data.
As mentioned above, in a conventional graphics processing unit, the geometry unit handles data by a floating-point number and the rendering unit handles data by a fixed-point number, so that the number representation of data to be handled is different between the two units. Therefore, conventionally, the geometry unit transforms data after operation from the floating-point number to a fixed-point number and transfers the data transformed to the fixed-point number to the rendering unit. For example, in the processing unit described in Japanese Patent Application Laid-Open 8-161525 mentioned above, by showing a number obtained by multiplying a floating-point number by 4096 in integer representation, the data shown in this integer representation shows the number correctly as a fixed-point number with the fraction part 12 bits long.
As mentioned above, in a conventional graphics processing unit, it is necessary to transform a floating-point number to a fixed-point number in the geometry unit. The content of transformation to a fixed-point number varies with the kind of data because the bit position of the decimal point of a fixed-point number required by the rendering unit varies with the kind of data.
Since the geometry unit transforms from a floating-point number to a fixed-point number as mentioned above, the burden of the geometry unit is increased and since the computing element of the geometry unit is used for transformation from a floating-point number to a fixed-point number during this period, the geometry unit cannot perform the intrinsic process such as coordinate transformation and the throughput of the whole graphics processing unit reduces. When the geometry unit is operated by a program, it is necessary to define the transformation procedure from a floating-point number to a fixed-point number which varies with the kind of data in the program.